package com.xhsj.user.hr.system.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xhsj.user.hr.process.processDefinition.query.MapQuery;
import com.xhsj.user.hr.system.entity.TbGlobalMenu;
import com.xhsj.user.hr.system.vo.OrganizationTreeVo;
import org.apache.ibatis.annotations.Mapper;
import com.xhsj.user.hr.system.entity.TbGlobalOrganization;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
/**
 * <p>
 * 组织结构表 Mapper 接口
 * </p>
 *
 * @author 苏小林
 * @since 2020-09-01
 */
@Mapper
public interface TbGlobalOrganizationMapper extends BaseMapper<TbGlobalOrganization> {

    List<MapQuery> organizationList();

    // 通过id查询parent_ids
    String getParentIdsById(@Param("parentId") Integer parentId);

    // 查询组织结构部门树
    List<OrganizationTreeVo> findOrganizationTree();

    // 查询parentId下所有列表数据
    IPage<TbGlobalOrganization> getListByParentId(Page<TbGlobalMenu> page, @Param("parentId") Long parentId);

    // 查询所有职位列表
    List<MapQuery> findPositionList();

    // 逻辑删除数据
    void delteById(@Param("id") Long id);

    // 查询名称是否重复
    int getByNameIsRepeat(@Param("type") Integer type, @Param("name") String name);

    /**
     * 通过部门id查询职位列表
     * @author 苏小林
     * @date 2021/3/31 10:37
     * @param: deptId
     * @return: java.util.List<com.xhsj.user.hr.process.processDefinition.query.MapQuery>
     */
    List<MapQuery> getPositionByDept(@Param("deptId") Long deptId);
}
